package cn.fl.riskctrl.brdb.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import fl.riskctrl.facade.brdb.dto.BrscrApplyLoanDTO;
import cn.fl.riskctrl.brdb.vo.BrscrApplyLoanVO;


 /**
 * @Description: 百融评分-多次申请核查高级版
  说明:
  1、取"空/0/N"；空：无申请记录；N申请记录详情。
  2、用户近7/15天、1/3/6/12个月在百融的虚拟信贷联盟(银行、非银、非银细分类型)中的多次信贷申请情况.
  3、客户类型——银行、非银：P2P、小贷、消费类分期、现金类分期、代偿类分期、其他（信保、信托等）。消费类分期：借贷用于购买消费品并分期偿还的业务；现金类分期：支取现金并分期偿还的业务；代偿类分期：借贷用于偿还已有借款并分期偿还的业务；非银其他：包括担保、信保等。
  2.时间维度定义：近1个月-最近30天，近3个月-最近90天、近6个月-最近180天。
  3.输出逻辑：0为填充值，与空的含义相同。
   转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class BrscrApplyLoanVOTransform {


	/**
	 * DTO 转  VO
	 * @return BrscrApplyLoanVO
	 */
	public static BrscrApplyLoanVO toVO(BrscrApplyLoanDTO dto) {
		BrscrApplyLoanVO  vo = null;
		if (dto != null) { 
			vo = new BrscrApplyLoanVO();
			vo.setId(dto.getId());
			vo.setPdCd(dto.getPdCd());//PD_CD
			vo.setQueryTypCd(dto.getQueryTypCd());//被查询类型(mp:手机号,idCard:身份证ID)
			vo.setPdlAllnum(dto.getPdlAllnum());//近N天/月申请线上小额现金贷的次数（取"空/N"；空：无申请记录；N申请记录详情）
			vo.setPdlOrgnum(dto.getPdlOrgnum());//近N天/月申请线上小额现金贷的机构数（取"空/N"；空：无申请记录；N申请记录详情（）
			vo.setCaonAllnum(dto.getCaonAllnum());//近N天/月申请线上现金分期的次数
			vo.setCaonOrgnum(dto.getCaonOrgnum());//近N天/月申请线上现金分期的机构数
			vo.setRelAllnum(dto.getRelAllnum());//近N天/月申请信用卡（类信用卡）的次数
			vo.setRelOrgnum(dto.getRelOrgnum());//近N天/月申请信用卡（类信用卡）的机构数
			vo.setCaoffAllnum(dto.getCaoffAllnum());//近N天/月申请线下现金分期的次数
			vo.setCaoffOrgnum(dto.getCaoffOrgnum());//近N天/月申请线下现金分期的机构数
			vo.setCooffAllnum(dto.getCooffAllnum());//近N天/月申请线下消费分期的次数
			vo.setCooffOrgnum(dto.getCooffOrgnum());//近N天/月申请线下消费分期的机构数
			vo.setAfAllnum(dto.getAfAllnum());//近N天/月申请汽车金融的次数
			vo.setAfOrgnum(dto.getAfOrgnum());//近N天/月申请汽车金融的机构数
			vo.setCoonAllnum(dto.getCoonAllnum());//近N天/月申请线上消费分期的次数
			vo.setCoonOrgnum(dto.getCoonOrgnum());//近N天/月申请线上消费分期的机构数
			vo.setOthAllnum(dto.getOthAllnum());//近N天/月申请其他的次数
			vo.setOthOrgnum(dto.getOthOrgnum());//近N天/月申请其他的机构数
			vo.setBankSelfnum(dto.getBankSelfnum());//近N天/月在本机构(本机构为银行)的申请次数
			vo.setBankAllnum(dto.getBankAllnum());//近N天/月在银行机构申请次数
			vo.setBankTraAllnum(dto.getBankTraAllnum());//近N天/月在银行机构-传统银行申请次数
			vo.setBankRetAllnum(dto.getBankRetAllnum());//近N天/月在银行机构-网络零售银行申请次数
			vo.setBankOrgnum(dto.getBankOrgnum());//近N天/月在银行机构申请机构数
			vo.setBankTraOrgnum(dto.getBankTraOrgnum());//近N天/月在银行机构-传统银行申请机构数
			vo.setBankRetOrgnum(dto.getBankRetOrgnum());//近N天/月在银行机构-网络零售银行申请机构数
			vo.setBankWeekAllnum(dto.getBankWeekAllnum());//近N天/月在银行机构周末申请次数
			vo.setBankWeekOrgnum(dto.getBankWeekOrgnum());//近N天/月在银行机构周末申请机构数
			vo.setBankNightAllnum(dto.getBankNightAllnum());//近N天/月在银行机构夜间申请次数
			vo.setBankNightOrgnum(dto.getBankNightOrgnum());//近N天/月在银行机构夜间申请机构数
			vo.setNbankSelfnum(dto.getNbankSelfnum());//近N天/月在本机构(本机构为非银)申请次数
			vo.setNbankAllnum(dto.getNbankAllnum());//近N天/月在非银机构申请次数
			vo.setNbankP2pAllnum(dto.getNbankP2pAllnum());//近N天/月在非银机构-p2p机构申请次数
			vo.setNbankMcAllnum(dto.getNbankMcAllnum());//近N天/月在非银机构-小贷机构申请次数
			vo.setNbankCaAllnum(dto.getNbankCaAllnum());//近N天/月在非银机构-现金类分期机构申请次数
			vo.setNbankCfAllnum(dto.getNbankCfAllnum());//近N天/月在非银机构-消费类分期机构申请次数
			vo.setNbankComAllnum(dto.getNbankComAllnum());//近N天/月在非银机构-代偿类分期机构申请次数
			vo.setNbankOthAllnum(dto.getNbankOthAllnum());//近N天/月在非银机构-其他申请次数
			vo.setNbankNsloanAllnum(dto.getNbankNsloanAllnum());//近N天/月在非银机构-持牌网络小贷机构申请次数
			vo.setNbankAutofinAllnum(dto.getNbankAutofinAllnum());//近N天/月在非银机构-持牌汽车金融机构申请次数
			vo.setNbankSloanAllnum(dto.getNbankSloanAllnum());//近N天/月在非银机构-持牌小贷机构申请次数
			vo.setNbankConsAllnum(dto.getNbankConsAllnum());//近N天/月在非银机构-持牌消费金融机构申请次数
			vo.setNbankFinleaAllnum(dto.getNbankFinleaAllnum());//近N天/月在非银机构-持牌融资租赁机构申请次数
			vo.setNbankElseAllnum(dto.getNbankElseAllnum());//近N天/月在非银机构-其他申请次数
			vo.setNbankOrgnum(dto.getNbankOrgnum());//近N天/月在非银机构申请机构数
			vo.setNbankP2pOrgnum(dto.getNbankP2pOrgnum());//近N天/月在非银机构-p2p申请机构数
			vo.setNbankMcOrgnum(dto.getNbankMcOrgnum());//近N天/月在非银机构-小贷申请机构数
			vo.setNbankCaOrgnum(dto.getNbankCaOrgnum());//近N天/月在非银机构-现金类分期申请机构数
			vo.setNbankCfOrgnum(dto.getNbankCfOrgnum());//近N天/月在非银机构-消费类分期申请机构数
			vo.setNbankComOrgnum(dto.getNbankComOrgnum());//近N天/月在非银机构-代偿类分期申请机构数
			vo.setNbankOthOrgnum(dto.getNbankOthOrgnum());//近N天/月在非银机构-其他申请机构数
			vo.setNbankNsloanOrgnum(dto.getNbankNsloanOrgnum());//近N天/月在非银机构-持牌网络小贷机构申请机构数
			vo.setNbankAutofinOrgnum(dto.getNbankAutofinOrgnum());//近N天/月在非银机构-持牌汽车金融机构申请机构数
			vo.setNbankSloanOrgnum(dto.getNbankSloanOrgnum());//近N天/月在非银机构-持牌小贷机构申请机构数
			vo.setNbankConsOrgnum(dto.getNbankConsOrgnum());//近N天/月非银机构-持牌消费金融机构申请机构数
			vo.setNbankFinleaOrgnum(dto.getNbankFinleaOrgnum());//近N天/月在非银机构-持牌融资租赁机构申请机构数
			vo.setNbankElseOrgnum(dto.getNbankElseOrgnum());//近N天/月在非银机构-其他申请机构数
			vo.setNbankWeekAllnum(dto.getNbankWeekAllnum());//近N天/月在非银机构周末申请次数
			vo.setNbankWeekOrgnum(dto.getNbankWeekOrgnum());//近N天/月在非银机构周末申请机构数
			vo.setNbankNightAllnum(dto.getNbankNightAllnum());//近N天/月在非银机构夜间申请次数
			vo.setNbankNightOrgnum(dto.getNbankNightOrgnum());//近N天/月在非银机构夜间申请机构数
			vo.setReportNo(dto.getReportNo());//报告编号-关联报告表ID

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @return BrscrApplyLoanDTO
	 */
	public static BrscrApplyLoanDTO toDTO(BrscrApplyLoanVO vo) {
		BrscrApplyLoanDTO dto = null;
		if (vo != null) {
			dto = new BrscrApplyLoanDTO();
			dto.setId(vo.getId());
			dto.setPdCd(vo.getPdCd());//PD_CD
			dto.setQueryTypCd(vo.getQueryTypCd());//被查询类型(mp:手机号,idCard:身份证ID)
			dto.setPdlAllnum(vo.getPdlAllnum());//近N天/月申请线上小额现金贷的次数（取"空/N"；空：无申请记录；N申请记录详情）
			dto.setPdlOrgnum(vo.getPdlOrgnum());//近N天/月申请线上小额现金贷的机构数（取"空/N"；空：无申请记录；N申请记录详情（）
			dto.setCaonAllnum(vo.getCaonAllnum());//近N天/月申请线上现金分期的次数
			dto.setCaonOrgnum(vo.getCaonOrgnum());//近N天/月申请线上现金分期的机构数
			dto.setRelAllnum(vo.getRelAllnum());//近N天/月申请信用卡（类信用卡）的次数
			dto.setRelOrgnum(vo.getRelOrgnum());//近N天/月申请信用卡（类信用卡）的机构数
			dto.setCaoffAllnum(vo.getCaoffAllnum());//近N天/月申请线下现金分期的次数
			dto.setCaoffOrgnum(vo.getCaoffOrgnum());//近N天/月申请线下现金分期的机构数
			dto.setCooffAllnum(vo.getCooffAllnum());//近N天/月申请线下消费分期的次数
			dto.setCooffOrgnum(vo.getCooffOrgnum());//近N天/月申请线下消费分期的机构数
			dto.setAfAllnum(vo.getAfAllnum());//近N天/月申请汽车金融的次数
			dto.setAfOrgnum(vo.getAfOrgnum());//近N天/月申请汽车金融的机构数
			dto.setCoonAllnum(vo.getCoonAllnum());//近N天/月申请线上消费分期的次数
			dto.setCoonOrgnum(vo.getCoonOrgnum());//近N天/月申请线上消费分期的机构数
			dto.setOthAllnum(vo.getOthAllnum());//近N天/月申请其他的次数
			dto.setOthOrgnum(vo.getOthOrgnum());//近N天/月申请其他的机构数
			dto.setBankSelfnum(vo.getBankSelfnum());//近N天/月在本机构(本机构为银行)的申请次数
			dto.setBankAllnum(vo.getBankAllnum());//近N天/月在银行机构申请次数
			dto.setBankTraAllnum(vo.getBankTraAllnum());//近N天/月在银行机构-传统银行申请次数
			dto.setBankRetAllnum(vo.getBankRetAllnum());//近N天/月在银行机构-网络零售银行申请次数
			dto.setBankOrgnum(vo.getBankOrgnum());//近N天/月在银行机构申请机构数
			dto.setBankTraOrgnum(vo.getBankTraOrgnum());//近N天/月在银行机构-传统银行申请机构数
			dto.setBankRetOrgnum(vo.getBankRetOrgnum());//近N天/月在银行机构-网络零售银行申请机构数
			dto.setBankWeekAllnum(vo.getBankWeekAllnum());//近N天/月在银行机构周末申请次数
			dto.setBankWeekOrgnum(vo.getBankWeekOrgnum());//近N天/月在银行机构周末申请机构数
			dto.setBankNightAllnum(vo.getBankNightAllnum());//近N天/月在银行机构夜间申请次数
			dto.setBankNightOrgnum(vo.getBankNightOrgnum());//近N天/月在银行机构夜间申请机构数
			dto.setNbankSelfnum(vo.getNbankSelfnum());//近N天/月在本机构(本机构为非银)申请次数
			dto.setNbankAllnum(vo.getNbankAllnum());//近N天/月在非银机构申请次数
			dto.setNbankP2pAllnum(vo.getNbankP2pAllnum());//近N天/月在非银机构-p2p机构申请次数
			dto.setNbankMcAllnum(vo.getNbankMcAllnum());//近N天/月在非银机构-小贷机构申请次数
			dto.setNbankCaAllnum(vo.getNbankCaAllnum());//近N天/月在非银机构-现金类分期机构申请次数
			dto.setNbankCfAllnum(vo.getNbankCfAllnum());//近N天/月在非银机构-消费类分期机构申请次数
			dto.setNbankComAllnum(vo.getNbankComAllnum());//近N天/月在非银机构-代偿类分期机构申请次数
			dto.setNbankOthAllnum(vo.getNbankOthAllnum());//近N天/月在非银机构-其他申请次数
			dto.setNbankNsloanAllnum(vo.getNbankNsloanAllnum());//近N天/月在非银机构-持牌网络小贷机构申请次数
			dto.setNbankAutofinAllnum(vo.getNbankAutofinAllnum());//近N天/月在非银机构-持牌汽车金融机构申请次数
			dto.setNbankSloanAllnum(vo.getNbankSloanAllnum());//近N天/月在非银机构-持牌小贷机构申请次数
			dto.setNbankConsAllnum(vo.getNbankConsAllnum());//近N天/月在非银机构-持牌消费金融机构申请次数
			dto.setNbankFinleaAllnum(vo.getNbankFinleaAllnum());//近N天/月在非银机构-持牌融资租赁机构申请次数
			dto.setNbankElseAllnum(vo.getNbankElseAllnum());//近N天/月在非银机构-其他申请次数
			dto.setNbankOrgnum(vo.getNbankOrgnum());//近N天/月在非银机构申请机构数
			dto.setNbankP2pOrgnum(vo.getNbankP2pOrgnum());//近N天/月在非银机构-p2p申请机构数
			dto.setNbankMcOrgnum(vo.getNbankMcOrgnum());//近N天/月在非银机构-小贷申请机构数
			dto.setNbankCaOrgnum(vo.getNbankCaOrgnum());//近N天/月在非银机构-现金类分期申请机构数
			dto.setNbankCfOrgnum(vo.getNbankCfOrgnum());//近N天/月在非银机构-消费类分期申请机构数
			dto.setNbankComOrgnum(vo.getNbankComOrgnum());//近N天/月在非银机构-代偿类分期申请机构数
			dto.setNbankOthOrgnum(vo.getNbankOthOrgnum());//近N天/月在非银机构-其他申请机构数
			dto.setNbankNsloanOrgnum(vo.getNbankNsloanOrgnum());//近N天/月在非银机构-持牌网络小贷机构申请机构数
			dto.setNbankAutofinOrgnum(vo.getNbankAutofinOrgnum());//近N天/月在非银机构-持牌汽车金融机构申请机构数
			dto.setNbankSloanOrgnum(vo.getNbankSloanOrgnum());//近N天/月在非银机构-持牌小贷机构申请机构数
			dto.setNbankConsOrgnum(vo.getNbankConsOrgnum());//近N天/月非银机构-持牌消费金融机构申请机构数
			dto.setNbankFinleaOrgnum(vo.getNbankFinleaOrgnum());//近N天/月在非银机构-持牌融资租赁机构申请机构数
			dto.setNbankElseOrgnum(vo.getNbankElseOrgnum());//近N天/月在非银机构-其他申请机构数
			dto.setNbankWeekAllnum(vo.getNbankWeekAllnum());//近N天/月在非银机构周末申请次数
			dto.setNbankWeekOrgnum(vo.getNbankWeekOrgnum());//近N天/月在非银机构周末申请机构数
			dto.setNbankNightAllnum(vo.getNbankNightAllnum());//近N天/月在非银机构夜间申请次数
			dto.setNbankNightOrgnum(vo.getNbankNightOrgnum());//近N天/月在非银机构夜间申请机构数
			dto.setReportNo(vo.getReportNo());//报告编号-关联报告表ID

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
		}
		return dto;
	}
}
